<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 重做 下面是对的做法 我这个做的太啰嗦了
        // 利用函数求任意一个数组中的最大值[5,2,99,101,67,77]
        // var arr = [5, 2, 99, 101, 67, 77]
        // 我用得双重遍历循环 然后交换元素1,2的位置 最后return arr[0] 导出最大值
        // function getMax(arr) {
        //     for (var i = 0; i < arr.length - 1; i++) {
        //         for (var j = 0; j < arr.length - i - 1; j++) {
        //             if (arr[j] < arr[j + 1]) {
        //                 var temp = arr[j]
        //                 arr[j] = arr[j + 1]
        //                 arr[j + 1] = temp
        //             }
        //         }
        //     }
        //     return arr[0]
        // }
        // // console.log(getMax([5, 2, 99, 101, 67, 77]));
        // var re = getMax([5, 2, 99, 101, 67, 77])
        // console.log(re);








        // 重做 下面是对的做法 我这个做的太啰嗦了
        // 利用函数求任意一个数组中的最大值[5,2,99,101,67,77]
        //  遍历数组    
        // 定义变量下标0为 max 
        // function getMax(arr) {
        //     var max = arr[0]
        //     for (var i = 1; i < arr.length; i++) {
        //         if (arr[i] > max) { //必须是 数组元素> max 不然如果碰到小标1小于max的数组就 循环不出正确结果
        //             max = arr[i]
        //         }
        //     }
        //     return max
        // }
        // var re = getMax([5, 2, 99, 101, 67, 77])
        // console.log(re);













        // /////

        //  求最大值 比较有代表性 练习
        //  利用函数求任意一个数组中的最大值[5,2,99,101,67,77]
        //  定义一个存放最大值的变量max
        //  用max存放数组里第一个元素 然后遍历循环数组  
        //  然后用max也就是第一个数组元素去跟后面的元素依次作比较 如果后面的数组元素值大于max的则就保存到max里 最后输出max 
        // function getMax(arr) {
        //     var max = arr[0]
        //     for (var i = 1; i < arr.length; i++) {
        //         if (arr[i] > max) {
        //             max = arr[i]
        //         }
        //     }
        //     return max
        // }
        // var re = getMax([5, 2, 99, 101, 67, 77,200])
        // console.log(re);

        // 三

        // 翻转数组  练习
        // 老师做法
        // 利用函数封装方式 翻转任意一个数组
        // ['pink','blue','purple','black']
        // 思路 需要声明一个空数组去存放旧数组传递来的数据
        // 遍历旧数组 翻转都是递减
        //从旧数组下标尾数开始 跟 新数组下标0 互换 循环直至 全部互换完成 即完成翻转
        // function getArr(arr) {
        //     var newArr = []
        //     for (var i = arr.length - 1; i >= 0; i--) {
        //         newArr[newArr.length] = arr[i]
        //     }
        //     return newArr
        // }
        // var re = getArr(['pink', 'blue', 'purple', 'black'])
        // console.log(re);

        // 利用函数封装方式 翻转任意一个数组
        // ['pink','blue','purple','black']

        // 思路 1 声明一组新的空数组 2 遍历旧数组 旧数组从最后一位开始 递减式的换到新数组里（新数组正向排列）
        //     function getArr(arr) {
        //         var newArr =  []
        //         for(var i = arr.length -1 ; i >= 0 ; i--) {
        //             newArr[newArr.length] = arr[i]
        //         }
        // return newArr
        //     }
        //   var re =   getArr(['pink','blue','purple','black'])
        //   console.log(re );
        //冒泡排序 [1,2,3,4,5,6,7,8,9,3,4,5,6,7,8,1,3,4,6,7,9,45,3,4,56,6] 从大到小排列
        //   思路 1 双重内外循环 外层控制总趟数 内层控制每趟元素需要交换的总次数 2 j> j+1 两者交换 直至循环结束
        // function getMaoPao(arr) {
        //     for (var i = 0; i < arr.length - 1; i++) {
        //         for (var j = 0; j < arr.length - i - 1; j++) {
        //             if (arr[j + 1] > arr[j]) {
        //                 var temp = arr[j]
        //                 arr[j] = arr[j + 1]
        //                 arr[j + 1] = temp
        //             }
        //         }

        //     }
        //     return arr
        // }
        // var re = getMaoPao([1, 2, 3, 4, 5, 6, 7, 8, 9, 3, 4, 5, 6, 7, 8, 1, 3, 4, 6, 7, 9, 45, 3, 4, 56, 6])
        // console.log(re);

        //  利用函数求任意一个数组中的最大值[5,2,99,101,67,77]
        // 思路  1数组所有元素一一去跟[0]比较 如果大于[0] 则 [0] = [i] [0]用max变量保存起来 永远存放最大值
        function getMax(arr) {
            var max = arr[0]
            for (var i = 1; i < arr.length; i++) {
                if (arr[i] > max) {
                    max = arr[i]
                }
            }
            return max
        }
        var re = getMax([5, 2, 99, 101, 67, 77])
        console.log(re);























    // 翻转数组  练习
     // 老师做法
        // 利用函数封装方式 翻转任意一个数组
        // ['pink','blue','purple','black']
        // function get(arr) {
        //     var newArr =[]
        //     for (var i = arr.length-1; i >= 0;i-- ) {
        //         // 1.newArr[newArr.length] .length是动态检测数组长度 newArr是空数组 所以检测的肯定是索引0 所以让旧数组传递过来的值 会按照索引号从0开始 依次排列 达到一个翻转的效果
        //         newArr[newArr.length] = arr[i] //2.arr[i]初始值为旧数组最后一位 然后根据循环 操作表达式i-- 依次递减 到旧数组第一位 （返回到新数组就是是按照正确的正向的排列了 因为新数组有.length 解释如1）
        //     }
        //     return newArr
        // }
        // var re = get([1,2,3,5,6,7,8,9])
        // console.log(re);

        // 四
        // 冒泡排序 练习
        // 双重循环 外层控制趟数 内层控制每趟交换的次数
        // 如果内层循环：第一个元素小于第二个元素 arr[j] < arr[j + 1] 那么就让他俩互相交换（小于还是大于无所谓 可以输出看下再调 其他不要错就行）
        // 交换两个变量需要定义一个新的临时变量temp
        // function str(arr) {
        //     for (var i = 0; i < arr.length; i++) {
        //         for (var j = 0; j < arr.length - i - 1; j++) {
        //             if (arr[j] < arr[j + 1]) {
        //                 var temp = arr[j]
        //                 arr[j] = arr[j + 1]
        //                 arr[j + 1] = temp
        //             }
        //         }
        //     }
        //     return arr
        // }
        // var re = str([3, 4, 1, 2, 5])
        // console.log(re);










        // 四
        // 冒泡排序 练习
    //思路 双重循环 外层控制总趟数 内层控制每趟交换的次数
    // 遍历内层循环 如果j > j+1时 则交换变量这两个变量
// //    交换两个变量需要定义一个临时变量
// function  getMaoPao(arr) {
//     for(var i = 0; i < arr.length -1 ; i++ ) {
//         for(var j = 0 ; j < arr.length -i -1 ;j++) {
//             if(arr[j] < arr[j + 1 ]) {
//                 var temp = arr[j]
//                 arr[j] = arr[j + 1]
//                 arr[j + 1] = temp
//             }
//         }
//     }
//        return arr
// }
//    var re = getMaoPao([8,2,3,4,1,4,5,6,9,19,18,13,14,16])
//    console.log(re);

    </script>
</head>

<body>

</body>

</html>